--[[
牌桌的日志，主要是两类
=====================
=====================
牌桌牌局日志，按天分目录，每个牌局一个文件，主要是给后台查询使用。
下面的每行，日志文件中就是一行

后面两段时间：是开始时间戳的北京时间的可读格式。

日志文件名： table_uuid_开始时间戳_结束时间戳_rid1_rid2_rid3_20171231_126060.log

牌桌的唯一编号,table_uuid  -- 字符串
牌桌种类 ：1，钻石场，2 房卡场 -- 数字
扣取的服务费：每人的， 如果是房卡场，填0  -- 数字
牌桌的config -- json数组
开始时间：   -- 数字
结束时间：   -- 数字
参加人员rid以及游戏开始，结束钻石情况，rid为key 值：{winvalue gamestar_diamond, gameend_diamond}
	(如果是房卡场，那就只有winvalue了， 简化了 rid 为key, 值{winvalue} 就是最后输赢的积分） -- json数组， 
结算的唯一id table_tradeid
结算算番情况 -- json 各游戏不同

=====================
=====================
牌桌回放日志，按天分目录，每个牌局一个文件：主要功能是用作以后的回放
下面的每行，日志文件中就是一行

日志文件名： table_uuid_开始时间戳_0_rid1_rid2_rid3_20171231_126060.log

头几行内容和 “牌局文件” 一样
牌桌的唯一编号,table_uuid  — 字符串
牌桌种类 ：1，钻石场，2 房卡场 — 数字
扣取的服务费：每人的， 如果是房卡场，填0  — 数字
牌桌的config — json数组
开始时间：   — 数字
洗完牌之后的牌堆 — json，以后做统计什么的
发牌手牌情况 — json
…….
………
….
最后结算
]]

local filename = "tabledatalog.lua"

local skynet = require "skynet"
local tabletool = require "tabletool"
local timetool = require "timetool"
local redisdao = require "redisdao"
local os = os
require "skynet.manager"

local routerbase = require "routerbase"

local CMD = {}
local Tabledatalog = routerbase:new()
local logtype

-- 同时创建目录
local function get_file_name(filename)
	 ----- 日志分日期存储 ，所以要先检查目录------
    local _,now = string.match(filename,"(%a+_%d+_%d+_%d+)_(%d+)")
	local log_path = skynet.getenv("logpath") .. "/" .. logtype .. "/" .. os.date("%Y_%m_%d", now) .."/" .. os.date("%H", now)
	local file = io.open(log_path, "rb")
	if file then
		file:close()
	else
		os.execute("mkdir -p "..log_path)
	end
	return log_path.."/"..filename .. ".log"
end

-- 每次启动的时候，检查 applog/xxxxx 是否建立好
-- logtype 就是 :tablerecord  or tablereplay,这就是对应的目录
function Tabledatalog.CMD.init(datatype)
	logtype = datatype
	local log_path = skynet.getenv("logpath") .. "/" .. logtype
	local file = io.open(log_path, "rb")
	if file then
		file:close()
	else
		os.execute("mkdir -p ".. log_path)
	end
end

-- 文件名不用带 log的后缀，就是主文件名
-- 这里的str，是\n 分隔的字符串
function Tabledatalog.CMD.write(filename, str)
	local file = get_file_name(filename)
	local f = io.open(file, "a+")
	if f ~= nil then
		f:write(str)
		f:write("\n")
		f:close()
	end	
end

skynet.start(function()
	Tabledatalog:start()
end)
